home *** CD-ROM | disk | FTP | other *** search
- <%@ Language=VBScript %>
- <% Option Explicit %>
- <%
- '-------------------------------------------------------------------------
- ' groups.asp: Group area page - lists all the Groups,and provides
- ' links for creating new groups,editing and deleting groups
- '
- ' Copyright (c) Microsoft Corporation. All rights reserved.
- '
- ' Date Description
- ' 15-Jan-2001 Creation date
- '-------------------------------------------------------------------------
- %>
- <!-- #include virtual="/admin/inc_framework.asp" -->
- <!-- #include virtual="/admin/ots_main.asp" -->
- <%
- '-------------------------------------------------------------------------
- ' Global Constants
- '-------------------------------------------------------------------------
- Const NAME_COLUMN = 0
- Const DESCRIPTION_COLUMN = 1
- Const GROUPS_PER_PAGE = 100
-
- '
- ' Name of this source file
- Const SOURCE_FILE = "Groups.asp"
- '
- ' Flag to toggle optional tracing output
- Const ENABLE_TRACING = TRUE
-
- '-------------------------------------------------------------------------
- ' Global Variables
- '-------------------------------------------------------------------------
- Dim g_bSearchChanged
- Dim g_iSearchCol
- Dim g_sSearchColValue
-
- Dim g_bPagingInitialized
- Dim g_bPageChangeRequested
- Dim g_sPageAction
- Dim g_iPageMin
- Dim g_iPageMax
- Dim g_iPageCurrent
-
- Dim g_bSortRequested
- Dim g_iSortCol
- Dim g_sSortSequence
-
- '-------------------------------------------------------------------------
- ' Local Variables
- '-------------------------------------------------------------------------
-
- Dim page
- DIM L_APPLIANCE_GROUPS
- DIM L_DESCRIPTION_HEADING
- DIM L_COLUMN_NAME
- DIM L_COLUMN_FULLNAME
- DIM L_TASKS_TEXT
- DIM L_NEW_TEXT
- DIM L_DELETE_TEXT
- DIM L_PROPERTIES_TEXT
- DIM L_NEW_ROLLOVERTEXT
- DIM L_DELETE_ROLLOVERTEXT
- DIM L_PROPERTIES_ROLLOVERTEXT
- 'error messages
- Dim L_FAILEDTOGETGROUPS_ERRORMESSAGE
-
-
- L_APPLIANCE_GROUPS = GetLocString("usermsg.dll", "&H4031001C", "")
- L_DESCRIPTION_HEADING = GetLocString("usermsg.dll", "&H4031001D", "")
- L_COLUMN_NAME = GetLocString("usermsg.dll", "&H4031001E", "")
- L_COLUMN_FULLNAME = GetLocString("usermsg.dll", "&H4031001F", "")
- L_TASKS_TEXT = GetLocString("usermsg.dll", "&H40310020", "")
- L_NEW_TEXT = GetLocString("usermsg.dll", "&H40310021", "")
- L_DELETE_TEXT = GetLocString("usermsg.dll", "&H40310022", "")
- L_PROPERTIES_TEXT = GetLocString("usermsg.dll", "&H40310023", "")
- L_NEW_ROLLOVERTEXT = GetLocString("usermsg.dll", "&H40310024", "")
- L_DELETE_ROLLOVERTEXT = GetLocString("usermsg.dll", "&H40310025", "")
- L_PROPERTIES_ROLLOVERTEXT = GetLocString("usermsg.dll", "&H40310026", "")
-
- 'error messages
- L_FAILEDTOGETGROUPS_ERRORMESSAGE = GetLocString("usermsg.dll", "&HC031002E", "")
-
- '
- ' Create Page
- Call SA_CreatePage( L_APPLIANCE_GROUPS, "", PT_AREA, page )
-
- '
- ' Show page
- Call SA_ShowPage( page )
- '---------------------------------------------------------------------
- ' Function name: OnInitPage
- ' Description: Called to signal first time processing for this page.
- ' Input Variables: PageIn and EventArg
- ' Output Variables: None
- ' Return Values: TRUE to indicate initialization was successful. FALSE to indicate
- ' errors. Returning FALSE will cause the page to be abandoned.
- ' Global Variables: None
- ' Called to signal first time processing for this page. Use this method
- ' to do first time initialization tasks.
- '---------------------------------------------------------------------
- Public Function OnInitPage(ByRef PageIn, ByRef EventArg)
- OnInitPage = TRUE
-
- If ( ENABLE_TRACING ) Then
- Call SA_TraceOut(SOURCE_FILE, "OnInitPage")
- End If
-
- g_bPagingInitialized = FALSE
- g_iPageCurrent = 1
-
- g_iSortCol = 0
- g_sSortSequence = "A"
- End Function
-
- '---------------------------------------------------------------------
- ' Function name: OnServeAreaPage
- ' Description: Called when the page needs to be served.
- ' Input Variables: PageIn, EventArg
- ' Output Variables: None
- ' Return Values: TRUE to indicate no problems occured. FALSE to indicate errors.
- ' Returning FALSE will cause the page to be abandoned.
- ' Global Variables: In:g_bPageChangeRequested,g_sPageAction,
- ' g_bSearchRequested,g_iSearchCol,g_sSearchColValue
- ' In:L_(*)-Localization Strings
- ' Called when the page needs to be served. Use this method to serve content.
- '---------------------------------------------------------------------
- Public Function OnServeAreaPage(ByRef PageIn, ByRef EventArg)
- If ( ENABLE_TRACING ) Then
- Call SA_TraceOut(SOURCE_FILE, "OnServeAreaPage")
- End If
-
- Dim tableGroup
- Dim colFlags
- Dim iGroupCount
- Dim nReturnValue
- Dim strFlag
- Dim strUrlBase
-
- strFlag="noval"
-
- ' Create the table
- '
- tableGroup = OTS_CreateTable("", L_DESCRIPTION_HEADING)
-
-
- '
- ' If the search criteria changed then we need to recompute the paging range
- If ( TRUE = g_bSearchChanged ) Then
- '
- ' Need to recalculate the paging range
- g_bPagingInitialized = FALSE
- '
- ' Restarting on page #1
- g_iPageCurrent = 1
- End If
-
-
- '
- ' Name column is searchable and is contains key to row
- colFlags = (OTS_COL_SORT OR OTS_COL_SEARCH OR OTS_COL_KEY)
- '
- ' Create the column and add it to the table
- nReturnValue= OTS_AddTableColumn(tableGroup, OTS_CreateColumnEx( L_COLUMN_NAME, "left", colFlags, 25 ))
- If nReturnValue <> gc_ERR_SUCCESS Then
- SA_ServeFailurePage L_OTS_ADDCOLOUMNFAIL_ERRORMESSAGE
- OnServeAreaPage = false
- Exit Function
- End IF
-
- '
- ' Description is searchable
- colFlags = OTS_COL_SORT OR OTS_COL_SEARCH
- '
- ' Create the column and add it to the table
- nReturnValue=OTS_AddTableColumn(tableGroup, OTS_CreateColumnEx( L_COLUMN_FULLNAME, "left", colFlags, 50))
- If nReturnValue <> gc_ERR_SUCCESS Then
- SA_ServeFailurePage L_OTS_ADDCOLOUMNFAIL_ERRORMESSAGE
- OnServeAreaPage = false
- Exit Function
- End IF
-
-
- '
- ' Fetch the list of groups and add them to the table
- '
- Dim objContainer
- Dim objGroup
-
- '
- ' ADSI call to get the local computer object
- Set objContainer = GetObject("WinNT://" + GetComputerName() )
- '
- ' ADSI call to get the collection of local groups
- objContainer.Filter = Array("Group")
-
- iGroupCount = 0
- For Each objGroup in objContainer
- If ( Len( g_sSearchColValue ) <= 0 ) Then
- '
- ' Search criteria blank, select all rows
- '
- iGroupCount = iGroupCount + 1
-
- '
- ' Verify that the current group is part of the current page
- If ( IsItemOnPage( iGroupCount, g_iPageCurrent, GROUPS_PER_PAGE) ) Then
- Call OTS_AddTableRow( tableGroup, Array(objGroup.Name, objGroup.Description))
- strFlag="yesval"
- End If
-
- Else
- '
- ' Check the Search criteria
- '
- Select Case (g_iSearchCol)
-
- Case NAME_COLUMN
- If ( InStr(1, objGroup.Name, g_sSearchColValue, 1) ) Then
- iGroupCount = iGroupCount + 1
- '
- ' Verify that the current group part of the current page
- If ( IsItemOnPage( iGroupCount, g_iPageCurrent, GROUPS_PER_PAGE) ) Then
- Call OTS_AddTableRow( tableGroup, Array(objGroup.Name, objGroup.Description))
- strFlag="yesval"
- End If
- End If
-
- Case DESCRIPTION_COLUMN
- If ( InStr(1, objGroup.Description, g_sSearchColValue, 1) ) Then
- iGroupCount = iGroupCount + 1
- '
- ' Verify that the current group part of the current page
- If ( IsItemOnPage( iGroupCount, g_iPageCurrent, GROUPS_PER_PAGE) ) Then
- Call OTS_AddTableRow( tableGroup, Array(objGroup.Name, objGroup.Description))
- strFlag="yesval"
- End If
- End If
-
- Case Else
- Call SA_TraceOut(SOURCE_FILE, "Unrecognized search column: " + CStr(g_iSearchCol))
- iGroupCount = iGroupCount + 1
- '
- ' Verify that the current group part of the current page
- If ( IsItemOnPage( iGroupCount, g_iPageCurrent, GROUPS_PER_PAGE) ) Then
- Call OTS_AddTableRow( tableGroup, Array(objGroup.Name, objGroup.Description))
- strFlag="yesval"
- End If
- End Select
- End If
-
- Next
-
- '
- ' Set Tasks section title
- Call OTS_SetTableTasksTitle(tableGroup, L_TASKS_TEXT)
-
- '
- ' Add the tasks associated with Group objects
- strUrlBase = "users/group_new.asp"
- call SA_MungeURL(strUrlBase,"Tab1",GetTab1())
- call SA_MungeURL(strUrlBase,"Tab2",GetTab2())
- Call OTS_AddTableTask( tableGroup, OTS_CreateTaskEx(L_NEW_TEXT, _
- L_NEW_ROLLOVERTEXT, _
- strUrlBase,_
- OTS_PT_TABBED_PROPERTY, "OTS_TaskAlways") )
-
- strUrlBase = "users/group_delete.asp"
- call SA_MungeURL(strUrlBase,"Tab1",GetTab1())
- call SA_MungeURL(strUrlBase,"Tab2",GetTab2())
- Call OTS_AddTableTask( tableGroup, OTS_CreateTaskEx(L_DELETE_TEXT, _
- L_DELETE_ROLLOVERTEXT, _
- strUrlBase,_
- OTS_PT_PROPERTY, "OTS_TaskAny") )
-
- strUrlBase = "users/group_prop.asp"
- call SA_MungeURL(strUrlBase,"Tab1",GetTab1())
- call SA_MungeURL(strUrlBase,"Tab2",GetTab2())
- Call OTS_AddTableTask( tableGroup, OTS_CreateTaskEx(L_PROPERTIES_TEXT, _
- L_PROPERTIES_ROLLOVERTEXT, _
- strUrlBase,_
- OTS_PT_TABBED_PROPERTY, "OTS_TaskOne") )
-
- Set objContainer = Nothing
-
-
- '
- ' Enable paging feature
- '
- Call OTS_EnablePaging(tableGroup, TRUE)
-
- '
- ' If paging range needs to be initialised then
- ' we need to figure out how many pages we are going to display
- If ( FALSE = g_bPagingInitialized ) Then
- g_iPageMin = 1
-
- g_iPageMax = Int(iGroupCount / GROUPS_PER_PAGE )
- If ( (iGroupCount MOD GROUPS_PER_PAGE) > 0 ) Then
- g_iPageMax = g_iPageMax + 1
- End If
-
- g_iPageCurrent = 1
- Call OTS_SetPagingRange(tableGroup, g_iPageMin, g_iPageMax, g_iPageCurrent)
- End If
-
-
- '
- ' Sort the table
- '
- Call OTS_SortTable(tableGroup, g_iSortCol, g_sSortSequence, SA_RESERVED)
-
- '
- ' Set MultiSelection enabled
- '
- Call OTS_SetTableMultiSelection(tableGroup,TRUE)
-
- '
- ' Send table to the response stream
- '
- Call OTS_ServeTable(tableGroup)
-
- '
- ' All done...
- OnServeAreaPage = TRUE
- End Function
-
-
-
- '---------------------------------------------------------------------
- ' Function name: OnSearchNotify()
- ' Description: Search notification event handler. When one or more columns are
- ' marked with the OTS_COL_SEARCH flag, the Web Framework fires
- ' this event
- ' Input Variables: PageIn,EventArg,sItem,sValue
- ' Output Variables: PageIn,EventArg,sItem,sValue
- ' Returns: Always returns TRUE
- '---------------------------------------------------------------------
- Public Function OnSearchNotify(ByRef PageIn, _
- ByRef EventArg, _
- ByRef sItem, _
- ByRef sValue )
- OnSearchNotify = TRUE
-
- '
- ' User pressed the search GO button
- '
- If SA_IsChangeEvent(EventArg) Then
- If ( ENABLE_TRACING ) Then
- Call SA_TraceOut(SOURCE_FILE, "OnSearchNotify() Change Event Fired")
- End If
- g_bSearchChanged = TRUE
- g_iSearchCol = Int(sItem)
- g_sSearchColValue = CStr(sValue)
- '
- ' User clicked a column sort, OR clicked either the page next or page prev button
- ElseIf SA_IsPostBackEvent(EventArg) Then
- If ( ENABLE_TRACING ) Then
- Call SA_TraceOut(SOURCE_FILE, "OnSearchNotify() Postback Event Fired")
- End If
- g_bSearchChanged = FALSE
- g_iSearchCol = Int(sItem)
- g_sSearchColValue = CStr(sValue)
- '
- ' Unknown event source
- Else
- If ( ENABLE_TRACING ) Then
- Call SA_TraceOut(SOURCE_FILE, "Unrecognized Event in OnSearchNotify()")
- End If
- End IF
-
-
- End Function
-
- '---------------------------------------------------------------------
- ' Function: OnPagingNotify()
- ' Function name: OnPagingNotify()
- ' Description: Paging notification event handler.
- ' Input Variables: PageIn,EventArg,sPageAction,iPageMin,iPageMax,iPageCurrent
- ' Output Variables: PageIn,EventArg
- ' Return Values: Always returns TRUE
- ' Global Variables: G_*
- '---------------------------------------------------------------------
- Public Function OnPagingNotify(ByRef PageIn, _
- ByRef EventArg, _
- ByVal sPageAction, _
- ByVal iPageMin, _
- ByVal iPageMax, _
- ByVal iPageCurrent )
- OnPagingNotify = TRUE
-
- g_bPagingInitialized = TRUE
-
- '
- ' User pressed either page next or page previous
- '
- If SA_IsChangeEvent(EventArg) Then
- If ( ENABLE_TRACING ) Then
- Call SA_TraceOut(SOURCE_FILE, "OnPagingNotify() Change Event Fired")
- End If
- g_bPageChangeRequested = TRUE
- g_sPageAction = CStr(sPageAction)
- g_iPageMin = iPageMin
- g_iPageMax = iPageMax
- g_iPageCurrent = iPageCurrent
- '
- ' User clicked a column sort OR the search GO button
- ElseIf SA_IsPostBackEvent(EventArg) Then
- If ( ENABLE_TRACING ) Then
- Call SA_TraceOut(SOURCE_FILE, "OnPagingNotify() Postback Event Fired")
- End If
- g_bPageChangeRequested = FALSE
- g_sPageAction = CStr(sPageAction)
- g_iPageMin = iPageMin
- g_iPageMax = iPageMax
- g_iPageCurrent = iPageCurrent
- '
- ' Unknown event source
- Else
- If ( ENABLE_TRACING ) Then
- Call SA_TraceOut(SOURCE_FILE, "Unrecognized Event in OnPagingNotify()")
- End If
- End IF
-
- End Function
-
-
- '---------------------------------------------------------------------
- ' Function: OnSortNotify()
- ' Function name: GetServices
- ' Description: Sorting notification event handler.
- ' Input Variables: PageIn,EventArg,sortCol,sortSeq
- ' Output Variables: PageIn,EventArg
- ' Return Values: Always returns TRUE
- ' Global Variables: G_*
- '---------------------------------------------------------------------
- Public Function OnSortNotify(ByRef PageIn, _
- ByRef EventArg, _
- ByVal sortCol, _
- ByVal sortSeq )
- OnSortNotify = TRUE
-
- '
- ' User pressed column sort
- '
- If SA_IsChangeEvent(EventArg) Then
- If ( ENABLE_TRACING ) Then
- Call SA_TraceOut(SOURCE_FILE, "OnSortNotify() Change Event Fired")
- End If
- g_iSortCol = sortCol
- g_sSortSequence = sortSeq
- g_bSortRequested = TRUE
- '
- ' User presed the search GO button OR clicked either the page next or page prev button
- ElseIf SA_IsPostBackEvent(EventArg) Then
- If ( ENABLE_TRACING ) Then
- Call SA_TraceOut(SOURCE_FILE, "OnSortNotify() Postback Event Fired")
- End If
- g_iSortCol = sortCol
- g_sSortSequence = sortSeq
- g_bSortRequested = TRUE
- '
- ' Unknown event source
- Else
- If ( ENABLE_TRACING ) Then
- Call SA_TraceOut(SOURCE_FILE, "Unrecognized Event in OnSearchNotify()")
- End If
- End IF
-
- If ( ENABLE_TRACING ) Then
- Call SA_TraceOut(SOURCE_FILE, "Sort col: " + CStr(sortCol) + " sequence: " + sortSeq)
- End If
-
- End Function
- '---------------------------------------------------------------------
- ' Function: IsItemOnPage()
- ' Description: Verify that the current group part of the current page.
- ' Input Variables: iCurrentItem
- ' Output Variables: None
- ' Return Values: TRUE or FALSE
- ' Global Variables: None
- '---------------------------------------------------------------------
-
- Private Function IsItemOnPage(ByVal iCurrentItem, iCurrentPage, iItemsPerPage)
- Dim iLowerLimit
- Dim iUpperLimit
-
- iLowerLimit = ((iCurrentPage - 1) * iItemsPerPage )
- iUpperLimit = iLowerLimit + iItemsPerPage + 1
-
- If ( iCurrentItem > iLowerLimit AND iCurrentItem < iUpperLimit ) Then
- IsItemOnPage = TRUE
- Else
- IsItemOnPage = FALSE
- End If
-
- End Function
-
- %>
-
-
-